#ifndef __FILE_H__
#define __FILE_H__

#include "TypeDef.h"
#include "FileStream.h"

namespace Woo {
namespace IO {

class File
{
public:
	static FileStream Create(string path);
	static FileStream Create(string path, int flags);
	static FileStream Create(string path, int flags, mode_t mode);
	static FileStream Open(string path);
	static FileStream Open(string path, int flags);
	static FileStream Open(string path, int flags, mode_t mode);
	static void ReadAllByte(string path, vector<Byte>* pbuffer);
	static void ReadAllByte(string path, Stream* stream);
	static void WriteAllByte(string path, Byte* buffer, UInt32 bufferSize);
	static void WriteAllByte(string path, Stream* stream);
	static void ReadAllText(string path, string* content);
	static string ReadAllText(string path);
	static void WriteAllText(string path, string* content);
	static bool Exists(string path);
	static void Delete(string path);
	static void Move(string sourceName, string destName);
	static void Copy(string sourcePath, string destPath);
	static void CreateSymLink(string sourceName, string destName);
};

} // namespace IO
} // namespace Woo

#endif // define __FILE_H__
